/*
 * 
 */

package SistemaGeneral;

/**
 *
 * @author LapR
 */
public class AnimadorSplash implements Runnable {

    private Splash splash;
    private boolean corriendo;
    private Thread thread;
    private final int FPS = 60;
    private final int RETARDO = 1000 / FPS;

    public AnimadorSplash(Splash splash) {
        this.splash = splash;

    }

 /**
     * Inicia el thread que se utilizara en el menu
     */
    public void iniciar() {
        thread = new Thread(this);
        thread.start();     // Llama al método run()
    }

    /**
     * Comienza actualizar y dibujar el menu
     */
    public void run() {

        corriendo = true;

        while (corriendo) {

            long ini = System.currentTimeMillis();
            // Actualice la pantalla (dibuje todos los objetos)
            splash.dibujar();
            long fin = System.currentTimeMillis();

            try {
                if (RETARDO - (fin - ini) >= 0) // Para evitar valores negativos
                {
                    Thread.sleep(RETARDO - (fin - ini));
                }
            } catch (InterruptedException ex) {
            }
        }
    }

    /**
     * Termina el thread del menu
     */
    public void terminar() {
        corriendo = false;
    }
}
